Texture mapping in a graphics processing unit (GPU) is responsible for adding detail to a computer generated graphics model. The process involves fetching actual color values and filtering them to produce the color for every pixel in the model. Texturing is a critical design component for 3D rendering performance and incurs a significant fraction of total processor power and memory. In typical GPUs, the color values are fetched from memory before further filtering. Memory access due to texturing contributes to memory bandwidth and memory power and is a major source of performance bottlenecks.
With the advent of deferred rendering approaches, memory usage has only increased. In a deferred rendering pipeline, all relevant material properties of objects in a scene are transferred from scene geometry onto multiple images. Lighting and all subsequent rendering and lighting calculations are then performed on a per-pixel level in post-processing stages, which consume these intermediate images, collectively known as the G(eometry)-buffer, and create the output image displayed on the screen. These images, and intermediate image traffic, constitute the primary consumer of memory bandwidth and a key limiter of rendering performance. For example, most images on current generation screens are rendered at 1080p with 32 bits per pixel—which by itself constitutes 8 MB of data and is expected to be rendered 30-60 times a second—requiring 240-480 MB per second of bandwidth just for the final image. The bandwidth constraints become even more severe with 4K resolution screens, which are gaining in popularity in consumer products.
As a result, reducing or eliminating memory accesses due to texturing is an important GPU design constraint.
The above information disclosed in this Background section is only for enhancement of understanding of the present disclosure, and therefore it may contain information that does not form the prior art that is already known to a person of ordinary skill in the art.